package model;

/**
 * Classe utilizada para encapsular as informações pertinentes aos erros
 * encontrados por pelos analisadores léxico, sintático e semântico, como o
 * lexema que gerou o erro, o tipo do erro e a linha no código-fonte onde ele
 * ocorreu.
 * 
 * @author Jody Matos, Alenilson
 * @version 1.0
 * @since 11/07/2011
 * @see model.ErrorType
 * 
 *      <dt><b>History:</b></dt> <dd>1.0: Creation of first methods</dd>
 */
public class CompileError {
    private String lexeme;
    private ErrorType type;
    private int lineNumber;

    /**
     * Cria uma instância de <code>LexicError</code>, atribuindo o lexema que
     * gerou o erro, o tipo do erro e a linha no código-fonte onde ele ocorreu.
     * 
     * @param lexeme
     *            <code>String</code> com o lexema que gerou o erro
     * @param type
     *            <code>ErrorType</code> com o tipo do erro
     * @param lineNumber
     *            <code>int</code> com o número da linha onde ele ocorreu
     */
    public CompileError(String lexeme, ErrorType type, int lineNumber) {
	this.lexeme = lexeme;
	this.type = type;
	this.lineNumber = lineNumber;
    }

    public void setLexeme(String lexeme) {
	this.lexeme = lexeme;
    }

    public String getLexeme() {
	return lexeme;
    }

    public void setLineNumber(int lineNumber) {
	this.lineNumber = lineNumber;
    }

    public int getLineNumber() {
	return lineNumber;
    }

    public void setType(ErrorType type) {
	this.type = type;
    }

    public ErrorType getType() {
	return type;
    }
}
